set(LLVM_TARGET_DEFINITIONS test_def_dialect.td) # 设置这个变量为dialect的文件名
# 然后调用定义好的函数，需要生成头文件和源文件
#   头文件是test_def_dialect.h.inc，需要用到tablegen的gen-dialect-decls选项，就会生成dialect的头文件定义
#   这样就会调用llvm-project/llvm/bin/mlir-tblgen工具生成对应的头文件
#   这样可直接使用很多内置的属性，如果直接手动用工具要定义很多头文件路径，用起来很麻烦
mlir_tablegen(test_def_dialect.h.inc --gen-dialect-decls -dialect=TestDefDialect)
#   然后设置生成源文件
mlir_tablegen(test_def_dialect.cpp.inc --gen-dialect-defs -dialect=TestDefDialect)
# 意思将前面生成的文件加到target的public依赖中,一般写法是xxxIncGen, 为了将之后新增的测试区分开，这里加一个编号后缀
add_public_tablegen_target(test_def_dialectIncGen${test_num})
# 这样在build构建的话就会生成这两个dialect需要的文件
